This invention relates generally to network addressing concepts and more specifically to a method and apparatus for assigning network addresses to resources that are integrated to perform a process controlled by a processor running a program and to a method for verifying addresses as a function of relative juxtapositions of resources that are assigned the addresses.
This section of this document is intended to introduce various aspects of art that may be related to aspects of the present invention described and/or claimed below. This section provides background information to facilitate a better understanding of the various aspects of the present invention. It should be understood that the statement in this section of this document are to be read in this light, and not as admissions of the prior art.
In many industries machines are integrated together to form assemblies for performing automated processes. For example, in the automobile industry, machine lines that include several hundred machines and several thousand sensors and actuators are common. In many of these cases various machines and associated controllers have to communicate with each other to harmonize the manufacturing process. Thus, for instance, where a machine line includes a conveyor or transfer line that transfers a work product from station to station during operation, in many cases, the transfer line has to come to a complete stop before other machines at the serial work stations can perform their parts of the machining process. Here, in at least some cases, commencement of machining at the separate stations must be tied to a signal from a sensor indicating that transfer line movement has ceased.
Hereinafter, devices and machines that are assembled together to perform a process and that have some need to communicate with other devices and machines will be referred to generally as resources or devices unless indicated otherwise. Thus, for instance, sensors and actuators will generally be referred to as resources or devices. Similarly, a controller (e.g., a programmable logic controller) will be referred to generally as a resource. As another instance, a machine that includes several sensors and actuators may, in combination, be referred to as a resource. In addition, the product or assembly that is being processed by a machine will be referred to as a “work product.”
Several companies that specialize in automated systems have provided systems that have essentially completely “flat” communication networks to facilitate communication between system resources. For instance, Ethernet systems are now employed in some facilities where each resource within the facility is assigned a unique logical network address. Here, in some cases, a first resource can communicate with a second resource by tagging information with the Ethernet address of the second resource. In other cases, resources may be programmed to “listen” on the network for transmissions tagged by other resources as originating from the other resources and may then consume information in the transmissions when the originating resource is one from which information is sought.
In many cases an Ethernet may be extremely large. For example, in some cases all of the resources within a multi-acre facility may be linked to the same Ethernet. In other cases all of the resources that are in any facility owned by a specific manufacturer may be linked to the same Ethernet. In these cases, for instance, a sensor in Wisconsin could be used to trigger an actuator in Arizona where the sensor and actuator are networked in some fashion.
A typical machine line design and build process includes several different phases. Initially, an engineer may generate a conceptual document indicating how a process should proceed to provide a final work product. Thereafter, an engineer may generate mechanical and electrical schematic diagrams (hereinafter “line schematics”) to indicate how various resources should be configured and linked together to construct a machine line to perform the intended process. During this design phase, the engineer may identify a number of stations along the line at which different process steps should occur, the mechanical and electrical resources (e.g., drill assemblies, mill assemblies, spray assemblies, clamp assemblies, transfer lines, etc.) to be located at each of the stations, actuators and sensors to be located at stations and their locations at the stations and a number of programmable logic controllers (PLCs) required to control the line resources.
Next, a programmer may write program code for controlling the entire line process. Here, the code will typically include intuitive input and output tags that correspond to sensors and actuators in the line schematics, respectively. For instance, one intuitive tag may be “mill station, 1.sup.st sensor” while another may be “drill station, 2.sup.nd actuator”. Here, the tags are selected by the programmer to reflect the actual resources that the inputs and outputs are related to so that subsequent association of specific inputs and outputs with specific sensors and actuators will be relatively intuitive simplified.
After the code has been written for controlling a line, an engineer assembles the actual line resources to construct the line pursuant to the electrical and mechanical schematics. Here, in the case of a flat network, each of the sensors and actuators is typically issued a unique network address upon assembly with the other line components. To this end, in the case of a flat Ethernet system, the manufacturer of each sensor, actuator or other device to be assigned a network address typically provides a unique Media Access Control (MAC) address or number to the device as a unique identification number for the device. When the device is linked to a network within an enterprise, the MAC numbers is replaced by a unique network address that comports with an addressing convention employed by the enterprise. Hereinafter, unless indicated otherwise, MAC addresses will be referred to as MAC numbers and network addresses will be referred to as addresses in order to avoid confusion.
Here, in at least some cases, a domain name services (DNS) server linked to the network may be programmed to automatically control replacement of the MAC numbers with network addresses. According to at least one address assigning process, when a device is newly linked to the network, the device transmits its MAC number onto the network. The DNS server monitors the network for MAC numbers and, when a new MAC number is identified, identifies an unassigned network address and assigns the unused address to the newly linked device. When a network address is assigned to the device, the address is transmitted to the device and the network address is stored by the device to facilitate subsequent communication. For instance, a first sensor may be assigned a logical network address SD82340-03948232, a second sensor may be assigned the address PP23403-32949931, and so on.
Continuing, after the line has been completely constructed, a commissioning engineer downloads the PLC programs to the PLCs and uses a list of PLC program tags and the mechanical and electrical schematics to associate each of the logical network addresses of the devices to a separate one of the PLC program tags. Thus, for instance, where the sensor having logical address SD82340-03948232 is the first sensor along a transfer line and one of the PLC program tags is “transfer line, 1.sup.st sensor”, the engineer may associate the address SD82340-03948232 with the “transfer line, 1.sup.st sensor” tag.
After all of the tags are associated with separate logical network addresses, in at least some cases, the PLC program tags are replaced by the associated logical addresses. In other cases, the associated tags and addresses are stored in a database which is subsequently used during system operation to link inputs and outputs (i.e., the devices) to the tags in the program. After the tags are replaced by the addresses or the tag-address database is stored, additional commissioning procedures are performed and then the line is ready to be used during normal operation.
While the above process is generally tedious, the phase that requires a commissioning engineer to associate logical device addresses with PLC program tags is one of the more daunting and problematic phases for several reasons. First, many facilities or related facilities include huge numbers of devices (e.g., hundreds or thousands of sensors and actuators) and therefore the tag-address association process takes a great deal of time and patience.
Second, because many facilities include huge numbers of devices, the addressing paradigms adopted by most facilities or enterprises (i.e., a group of related or networked facilities) that include flat networks are extremely complex. For example, typical Ethernet logical addresses include character strings of ten to twenty or more characters required to uniquely distinguish one sensor or actuator from the others. In cases where an engineer has to manually enter network addresses into an interface device to associate the addresses with program tags, data entry errors often occur. For instance, where an address includes a sixteen number-character string, if one of the numbers or characters in the string is wrong or if two of the numbers or characters are inverted, the input or output associated therewith will be wrong and the line will malfunction during operation. For example, a tag-address associating error may result in an actuator in a first facility being activated when a sensor in a second facility that is unrelated to the process in the first facility generates a “sensor tripped” signal.
The typical way to deal with the erroneous tag-address problem described above has been to perform extensive testing procedures after the tags and the logical addresses have been associated and during line commissioning. To this end, common testing procedures often require two or more technicians or engineers where one engineer activates a sensor or transmits an activation signal to an address that is believed to be associated with a specific actuator and another engineer observes resources associated with an expected activity intended to result form the activation. Where an unexpected result occurs, the engineers surmise that a tag-address association is incorrect and take steps to remedy the situation. These associating and commissioning processes are time consuming, tedious and generally require at least one highly skilled employee and therefore are relatively expensive.
Third, in many cases the task of tag-address association is complicated by the fact that the PLC programmer, despite attempting to use PLC tags that will be intuitive to the commissioning engineer, may in fact choose tags that are not intuitive to the commissioning engineer. Here, the task of associating tags and addresses is further complicated and can result in more tag-address associating errors.
Fourth, after tag-address associations and other commissioning processes are complete, often machine line devices have to be replaced during routine maintenance. Here, another addressing exercise, albeit on a smaller scale, has to be performed prior to restarting the line. These maintenance related addressing exercises, while simpler than full commissioning processes, are nevertheless complex and subject to error.
Thus, it would be advantageous to have a system that reduces the complexity of the addressing tasks and that automatically determines if likely addressing errors have occurred.